 push    ebx
 push    ecx
 push    edx
 push    esi
 push    edi
 push    es
 push    fs
 push    gs
 push    ebp
 sub     esp,00000004
 mov     esi,eax
 test    eax,eax
 je      newmalloc_pnt1
 cmp     eax,0FFFFFFD4h
 jbe     newmalloc_pnt2
newmalloc_pnt1:
 xor     eax,eax
 jmp     newmalloc_finish
newmalloc_pnt2:
 mov     ebp,004B153C
 lea     edi,+3[esi]
 xor     ah,ah
 xor     edx,edx
 mov     [esp],ah     
 and     di,0FFFCh
 mov     eax,edi
 cmp     edi,0000000Ch
 jae     newmalloc_pnt3
 mov     eax,0000000Ch
newmalloc_pnt3:
 cmp     eax,[004B1544]
 jbe     newmalloc_pnt5
 mov     ecx,[004B1540]
 test    ecx,ecx
 jne     newmalloc_pnt6
newmalloc_pnt7
 mov     [004B1544],ecx
 mov     ecx,[004B153C]
 jmp     newmalloc_pnt6
newmalloc_pnt5:
 xor     ecx,ecx
 jmp     newmalloc_pnt7
newmalloc_pnt10:
 mov     dx,ds
 mov     eax,ebp
 mov     [004B1540],ecx 
 and     edx,0000FFFF
 mov     ebx,ecx
 mov     eax,esi
 call    __MemAllocator                          
 mov     edx,eax
 test    eax,eax
 jne     newmalloc_pnt8
 mov     ebx,[004B1544]  
 mov     eax,+14[ecx]     
 cmp     eax,ebx
 jbe     newmalloc_pnt9
 mov     [004B1544],eax    
newmalloc_pnt9:
 mov     ecx,+8[ecx]      
newmalloc_pnt6:
 test    ecx,ecx
 jne     newmalloc_pnt10
 cmp     byte ptr [esp],00 
 jne     newmalloc_pnt11
 mov     eax,esi
 call    __ExpandDGROUP_                         
 test    eax,eax
 jne     newmalloc_pnt12
newmalloc_pnt11:
 mov     eax,esi
 call    __nmemneed_                             
 test    eax,eax
 je      newmalloc_pnt8
 xor     cl,cl
 mov     [esp],cl           
 jmp     004931DF
newmalloc_pnt12:
 mov     byte ptr [esp],01  
 jmp     004931DF
newmalloc_pnt8:
 xor     ch,ch
 mov     eax,edx
 mov     [004DAD48],ch 
newmalloc_finish:
 add     esp,00000004
 pop     ebp
 pop     gs
 pop     fs
 pop     es
 pop     edi
 pop     esi
